why is javascript so hard